Digital signal processing is the arithmetic processing of read-time signals sampled at regular intervals and digitized. A digital signal processor (DSP) provides digital signal processing functions such as filtering, mixing, and comparison of signals. In some data processing systems, a DSP may be included with a host processor to deal with the digital signal processing chores. A host processor may include, for example, a microcomputer or a microprocessor.
Occasionally it may be necessary for relatively large amounts of data to be transferred between the host processor and the DSP. When data is transferred between the two processors, a direct transfer may not be possible, because of incompatibilities between the two processors, such as, for example, the two processors may operate with different clocks. In this case, an asynchronously operated buffer memory may be used. The data is first transferred in bursts to the buffer memory by the transmitting processor before it can be received by the receiving processor. However, a buffer memory may require a large amount of valuable surface area on an integrated circuit, be expensive to implement, and slow down processing because all of the data must been transferred before the data can be processed.
To eliminate the relatively large buffer memory, a smaller first-in, first-out (FIFO) buffer is sometimes used to interface the host processor with the receiving processor. A FIFO buffer is a memory unit that outputs data in the same order as the data is received. When a relatively large amount of data is transferred, the FIFO buffer is accessed by the transmitting processor by a range of addresses. The range of addresses may also identify the destination in the receiving processor, such as, for example, the address in a memory of the receiving processor where the data is to be stored. Also, the address may also contain header information that is important for determining how the data is to be processed and where. However, when transferring the data through a FIFO buffer, the address may be lost unless some provision is made for saving the address, such as a separate address register in the receiving processor.